<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 构造函数Promise的方法  => 构造函数自己用  (Array.from   String.fromCharCode)
    // Promise.all()
    // Promise.race()
    // Promise.resolve()
    // Promise.reject()


    // var p = new Promise(function (resolve, reject) {
    //     resolve(1);
    // })
    // console.log(p); // Promise <fulfilled:1>

    // Promise.myResolve = function (val) {
    //     var p = new Promise(function (resolve, reject) {
    //         // 普通数据
    //         // resolve(val);

    //         // thenable 对象
    //         if (typeof val == "object" && val.then) {
    //             val.then(resolve, reject);
    //         }

    //     })
    //     return p;
    // }




    // Promise.resolve()   根据传入的数据转化为对应的Promise实例 => 快速得到Promise实例 

    // 1. 接收普通数据 => 转化为对应的Promise实例 (同步)
    var p = Promise.resolve(1);
    console.log(p);

    // 2. 接收一个Promise实例 => 返回该Promise实例 
    var p1 = Promise.resolve(p);
    console.log(p1 === p);

    // 3. 接收一个thenabled对象(thenable对象指的是具有then方法的对象)   (异步)

    var thenable = {
        then: function (resolve, reject) {
            setTimeout(function () {
                resolve(1);
                console.log(p2);
            }, 1000);
        }
    }

    var p2 = Promise.resolve(thenable);
    console.log(p2);








</script>

</html>